package com.net.xpay.core.service.safePay;

import com.net.xpay.common.domain.User;
import com.net.xpay.common.domain.collect.CollectionSafePayChannel;

import com.net.xpay.core.domain.collect.CollectionSafePayOrder;
import com.net.xpay.core.domain.safePay.SafePayBatch;
import com.net.xpay.core.model.*;
import com.net.xpay.core.model.*;

/**
 * 收集到卡
 */
public interface CollectionSafePayService {

    /**
     * 新增收集渠道
     */
    CollectionSafePayChannel addCollectionSafePayChannel(User merchant, CreateCollectionSafePayChannelModel model);

    /**
     * 修改渠道信息
     */
    CollectionSafePayChannel modifyCollectionSafePayChannelInfo(User merchant, ModifyCollectionSafePayChannelModel model);

    /**
     * 删除渠道
     */
    void deleteCollectionSafePayChannel(User merchant, IdModel model);


    /**
     * 新增收款信息
     */
    CollectionSafePayOrder addCollectionSafePayOrder(CollectionSafePayOrderModel model);

    /**
     * 创建转账批次
     */
    SafePayBatch createTransBatch(User merchant, CollectionSafePayOrderTransModel transModel);

    /**
     * 关闭批次回调
     */
    void closeCollectionSafePayBatchCallback(User user, SafePayBatch batch);

    /**
     * 跟新转账结果
     */
    void updateCollectionSafePayBatch(User user, SafePayBatch batch);

    /**
     * 废弃订单
     */
    void deleteOrderById(User merchant, Long id);
}
